The field of UC is a growing technology that unifies various forms of human communication via a device into a common user experience. UC may integrate real-time communications services such as instant messaging and presence, telephony, and video conferencing with other communications services such as voicemail, email, facsimile, and short messaging services. UC also attempts to achieve media independence. For example, an individual may be in a meeting and receive a call that cannot be accepted during the meeting. Sometime later, a voicemail notification is received, but the voicemail may not be retrievable by a phone call without disrupting the meeting. UC techniques allow the individual to receive a text version of the voicemail on a handheld device that was converted to text by a voice recognition tool. In this way, UC can increase human productivity by reducing communications latency.
UC may be virtualized, that is, the UC application may run in a hosted virtual desktop (HVD) while the user interface for the application is displayed on a remote client endpoint device. Virtualized UC presents a set of unique problems in that media such as audio and video may be more difficult to virtualize than simple text and graphics. The HVD session is mediated by a VDI link that renders hosted operations on the client desktop by processing client mouse and keyboard inputs on the host with the host sending the resultant video to the client, while media for phone and video calls are mediated by a media link, e.g., a Real-time Transport Protocol (RTP) link.
UC sessions are organized into calls, similar to ordinary telephony calls. The protocols to establish these calls can either be first-party call control protocols, where one of the endpoints participating in the call requests changes to the call state directly, or third-party call control protocols, where an entity that is not one of the endpoints participating in the call requests changes to the call state on behalf of one or more of the endpoints participating in the call. In third-party call control, the protocol used to request call state changes is sometimes referred to as a computer telephony interface (CTI).